package com.neuedu.corejava.ch10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

/**
 * 20190808下午
 * 为什么使用泛型集合
 * @author admin
 *
 */
public class GenericCollection {

	public static void main(String[] args) {
		//在大部分情况下，一个集合只用于保存一类数据
		//为了避免在获取数据时进行类型检查，可以使用泛型集合，在保存数据时进行类型检查
		//使用泛型集合语句，在定义集合对象时，进行类型的声明
		
		//第一种写法
		//List<Computer> list=new ArrayList<Computer>();
		
		//第二种写法，jdk1.7后支持
		//List<Computer> list=new ArrayList<>();
		
		//Vector类：功能结构与ArrayList相同，是多线程安全的；
		List<Computer> list=new Vector<>();
		
		list.add(new Computer("HP",6000));
		list.add(new Computer("HW",5200));
		list.add(new Computer("DELL",5400));
		
		//使用泛型集合在保存数据时，进行类型检查,会产生类型检查异常
		//list.add(new String("hello collection"));
		//list.add(new Date());
		
		//获取数据
		//使用泛型集合后，在获取数据时不需要进行类型转换
		for(Computer computer:list){
			System.out.println(computer);
		}
		Computer obj =list.get(0);
		
		Iterator<Computer> iterator=list.iterator();
		while (iterator.hasNext()) {
			//使用泛型后，可以保障读取数据时不会发生类型转换异常
			Computer computer=iterator.next();
			System.out.println(computer);
			
		}

	}

}
